using System;
using System.Collections;
using System.Collections.Generic;
using Newtonsoft.Json;

using MarketPlace.Data.Bases;

namespace MarketPlace.Data.DomainModels
{
    [JsonObject(MemberSerialization.OptIn)]
    public partial class MarketInfo : BusinessBase<long>
    {
        #region Declarations

		private byte _typeId = default(Byte);
		private System.DateTime _createdOn = new DateTime();
		private string _createdBy = String.Empty;
		private System.DateTime _updatedOn = new DateTime();
		private string _updatedBy = null;
		private bool _isPublished = default(Boolean);
		private string _title = String.Empty;
		private string _productName = null;
		private string _place = null;
		private decimal? _price = null;
		private int? _quantity = null;
		private int _seq = default(Int32);
		private string _details = null;
		
		
		
		#endregion

        #region Constructors

        public MarketInfo() { }

        #endregion

        #region Methods

        public override int GetHashCode()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            
            sb.Append(this.GetType().FullName);
			sb.Append(_typeId);
			sb.Append(_createdOn);
			sb.Append(_createdBy);
			sb.Append(_updatedOn);
			sb.Append(_updatedBy);
			sb.Append(_isPublished);
			sb.Append(_title);
			sb.Append(_productName);
			sb.Append(_place);
			sb.Append(_price);
			sb.Append(_quantity);
			sb.Append(_seq);
			sb.Append(_details);

            return sb.ToString().GetHashCode();
        }

        #endregion

        #region Properties

        [JsonProperty]
		public virtual byte TypeId
        {
            get { return _typeId; }
			set
			{
				OnTypeIdChanging();
				_typeId = value;
				OnTypeIdChanged();
			}
        }
		partial void OnTypeIdChanging();
		partial void OnTypeIdChanged();
		
        [JsonProperty]
		public virtual System.DateTime CreatedOn
        {
            get { return _createdOn; }
			set
			{
				OnCreatedOnChanging();
				_createdOn = value;
				OnCreatedOnChanged();
			}
        }
		partial void OnCreatedOnChanging();
		partial void OnCreatedOnChanged();
		
        [JsonProperty]
		public virtual string CreatedBy
        {
            get { return _createdBy; }
			set
			{
				OnCreatedByChanging();
				_createdBy = value;
				OnCreatedByChanged();
			}
        }
		partial void OnCreatedByChanging();
		partial void OnCreatedByChanged();
		
        [JsonProperty]
		public virtual System.DateTime UpdatedOn
        {
            get { return _updatedOn; }
			set
			{
				OnUpdatedOnChanging();
				_updatedOn = value;
				OnUpdatedOnChanged();
			}
        }
		partial void OnUpdatedOnChanging();
		partial void OnUpdatedOnChanged();
		
        [JsonProperty]
		public virtual string UpdatedBy
        {
            get { return _updatedBy; }
			set
			{
				OnUpdatedByChanging();
				_updatedBy = value;
				OnUpdatedByChanged();
			}
        }
		partial void OnUpdatedByChanging();
		partial void OnUpdatedByChanged();
		
        [JsonProperty]
		public virtual bool IsPublished
        {
            get { return _isPublished; }
			set
			{
				OnIsPublishedChanging();
				_isPublished = value;
				OnIsPublishedChanged();
			}
        }
		partial void OnIsPublishedChanging();
		partial void OnIsPublishedChanged();
		
        [JsonProperty]
		public virtual string Title
        {
            get { return _title; }
			set
			{
				OnTitleChanging();
				_title = value;
				OnTitleChanged();
			}
        }
		partial void OnTitleChanging();
		partial void OnTitleChanged();
		
        [JsonProperty]
		public virtual string ProductName
        {
            get { return _productName; }
			set
			{
				OnProductNameChanging();
				_productName = value;
				OnProductNameChanged();
			}
        }
		partial void OnProductNameChanging();
		partial void OnProductNameChanged();
		
        [JsonProperty]
		public virtual string Place
        {
            get { return _place; }
			set
			{
				OnPlaceChanging();
				_place = value;
				OnPlaceChanged();
			}
        }
		partial void OnPlaceChanging();
		partial void OnPlaceChanged();
		
        [JsonProperty]
		public virtual decimal? Price
        {
            get { return _price; }
			set
			{
				OnPriceChanging();
				_price = value;
				OnPriceChanged();
			}
        }
		partial void OnPriceChanging();
		partial void OnPriceChanged();
		
        [JsonProperty]
		public virtual int? Quantity
        {
            get { return _quantity; }
			set
			{
				OnQuantityChanging();
				_quantity = value;
				OnQuantityChanged();
			}
        }
		partial void OnQuantityChanging();
		partial void OnQuantityChanged();
		
        [JsonProperty]
		public virtual int Seq
        {
            get { return _seq; }
			set
			{
				OnSeqChanging();
				_seq = value;
				OnSeqChanged();
			}
        }
		partial void OnSeqChanging();
		partial void OnSeqChanged();
		
        [JsonProperty]
		public virtual string Details
        {
            get { return _details; }
			set
			{
				OnDetailsChanging();
				_details = value;
				OnDetailsChanged();
			}
        }
		partial void OnDetailsChanging();
		partial void OnDetailsChanged();
		
        #endregion
    }
}
